home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Extras / Development / RKM_Companion_v2.04 / Keymap / d.asm < prev    next >
Encoding:
Assembly Source File  |  1999-10-27  |  24.4 KB  |  661 lines

  1. *
  2. * Copyright (c) 1992-1999 Amiga, Inc.
  3. * This example is provided in electronic form by Amiga, Inc. for 
  4. * use with the "Amiga ROM Kernel Reference Manual: Devices", 3rd Edition, 
  5. * published by Addison-Wesley (ISBN 0-201-56775-X).
  6. * The "Amiga ROM Kernel Reference Manual: Devices" contains additional 
  7. * information on the correct usage of the techniques and operating system 
  8. * functions presented in these examples.  The source and executable code 
  9. * of these examples may only be distributed in free electronic form, via 
  10. * bulletin board or as part of a fully non-commercial and freely 
  11. * redistributable diskette.  Both the source and executable code (including 
  12. * comments) must be included, without modification, in any copy.  This 
  13. * example may not be published in printed form or distributed with any
  14. * commercial product.  However, the programming techniques and support
  15. * routines set forth in these examples may be used in the development
  16. * of original executable software products for Amiga computers.
  17. * All other rights reserved.
  18. * This example is provided "as-is" and is subject to change; no
  19. * warranties are made.  All use is at your own risk. No liability or
  20. * responsibility is assumed.
  21. *
  22. **********************************************************************
  23. *
  24. *   d.asm - d (GERMAN) A2000 key map
  25. *
  26. **********************************************************************
  27.  
  28.     section    code
  29.  
  30.  
  31. **   Assemble and then link without startup code or linker libs
  32.  
  33. *------ Included Files -----------------------------------------------
  34.         INCLUDE         "exec/types.i"
  35.         INCLUDE         "devices/keymap.i"
  36. *---------------------------------------------------------------------
  37.         DC.L    0,0             ; ln_Succ, ln_Pred
  38.         DC.B    0,0             ; ln_Type, ln_Pri
  39.         DC.L    KMName          ; ln_Name
  40.         DC.L    KMLowMapType
  41.         DC.L    KMLowMap
  42.         DC.L    KMLCapsable
  43.         DC.L    KMLRepeatable
  44.         DC.L    KMHighMapType
  45.         DC.L    KMHighMap
  46.         DC.L    KMHCapsable
  47.         DC.L    KMHRepeatable
  48. *------ Key Translation Table ----------------------------------------
  49. *  Raw key codes
  50. *
  51. *  45   50  51  52  53  54   55  56  57  58  59
  52. *  00   01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 41  46  5F    5A  5B  5C  5D
  53. *  42    10 11 12 13 14 15 16 17 18 19 1A 1B   44            3D  3E  3F  4A
  54. *  63 62  20 21 22 23 24 25 26 27 28 29 2A 2B        4C      2D  2E  2F  5E
  55. *  60 30   31 32 33 34 35 36 37 38 39 3A     61   4F 4D 4E   1D  1E  1F  43
  56. *     64  66                40             67 65             0F      3C
  57. *
  58. *---------------------------------------------------------------------
  59. *  German (D) mapping
  60. *
  61. *  ESC  F1  F2  F3  F4  F5   F6  F7  F8  F9  F10
  62. *  `~   1! 2" 3S 4$ 5% 6& 7/ 8( 9) 0= B? '` \| BS  DEL HELP  [{  ]}  /   *
  63. *  TAB   qQ wW eE rR tT zZ uU iI oO pP uU +*  RET            7   8   9   -
  64. *  CT CL  aA sS dD fF gG hH jJ kK lL oO aA #^        UC      4   5   6   +
  65. *  SH <>   yY xX cC vV bB nN mM ,; .: -_     SH   LC DC RC   1   2   3   ENT
  66. *     ALT AM              SPACE            AM ALT            0       .
  67. *
  68. *---------------------------------------------------------------------
  69. *   For comparison, here's the USA1 mapping
  70. *
  71. *  ESC  F1  F2  F3  F4  F5   F6  F7  F8  F9  F10
  72. *  `~   1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ \| BS  DEL HELP  ((  ))  //  **
  73. *  TAB   qQ wW eE rR tT yY uU iI oO pP [{ ]}  RET            77  88  99  --
  74. *  CT CL  aA sS dD fF gG hH jJ kK lL ;: '" [2B]      UC      44  55  66  ++
  75. *  SH [30] zZ xX cC vV bB nN mM ,< .> /?     SH   LC DC RC   11  22  33 ENT
  76. *     ALT AM              SPACE            AM ALT            00      ..
  77. *
  78. *--------------------------------------------------------------------------
  79. *
  80. *       40      Space
  81. *       41      Backspace
  82. *       42      Tab
  83. *       43      Enter
  84. *       44      Return
  85. *       45      Escape
  86. *       46      Delete
  87. *       4A      Numeric Pad -
  88. *       4C      Cursor Up
  89. *       4D      Cursor Down
  90. *       4E      Cursor Forward
  91. *       4F      Cursor Backward
  92. *
  93. *       50-59   Function keys F1-F10
  94. *       5A      Numeric Pad [{  (A2000)
  95. *       5B      Numeric Pad ]}  (A2000)
  96. *       5C      Numeric Pad /   (A2000)
  97. *       5D      Numeric Pad *   (A2000)
  98. *       5E      Numeric Pad +   (A2000)
  99. *       5F      Help
  100. *
  101. *       60      Left Shift
  102. *       61      Right Shift
  103. *       62      Caps Lock
  104. *       63      Control
  105. *       64      Left Alt
  106. *       65      Right Alt
  107. *       66      Left Amiga
  108. *       67      Right Amiga
  109. *
  110. *       68      Left Mouse Button (not converted)
  111. *       69      Right Mouse Button (not converted)
  112. *       6A      Middle Mouse Button (not converted)
  113. *
  114. *---------------------------------------------------------------------
  115. KMLCapsable: ; NL means NULL (undefined) and RE means RESERVED
  116.         DC.B    %00000000       ; 7\ 6& 5% 4$ 3s 2" 1! []  07 - 00
  117.         DC.B    %00000000       ; 0N NL \| '` B? 0= 9) 8(  0F - 08
  118.         DC.B    %11111111       ; iI uU zZ tT rR eE wW qQ  17 - 10
  119.         DC.B    %00000111       ; 3N 2N 1N NL +* UU pP oO  1F - 18
  120.         DC.B    %11111111       ; kK jJ hH gG fF dD sS aA  27 - 20
  121.         DC.B    %00000111       ; 6N 5N 4N NL #' AA OO lL  2F - 28
  122.         DC.B    %11111110       ; mM nN bB vV cC xX yY <>  37 - 30
  123.         DC.B    %00000000       ; 9N 8N 7N .N NL -_ .: ,;  3F - 38
  124.  
  125. KMHCapsable:
  126.         DC.B    %00000000       ; 47 - 40
  127.         DC.B    %00000000       ; 4F - 48
  128.         DC.B    %00000000       ; 57 - 50
  129.         DC.B    %00000000       ; 5F - 58
  130.         DC.B    %00000000       ; 67 - 60
  131.         DC.B    %00000000       ; 6F - 68
  132.         DC.B    %00000000       ; 77 - 70
  133. KMLRepeatable:
  134.         DC.B    %11111111       ; 7\ 6& 5% 4$ 3s 2" 1! []  07 - 00
  135.         DC.B    %10111111       ; 0N NL \| '` B? 0= 9) 8(  0F - 08
  136.         DC.B    %11111111       ; iI uU zZ tT rR eE wW qQ  17 - 10
  137.         DC.B    %11101111       ; 3N 2N 1N NL +* UU pP oO  1F - 18
  138.         DC.B    %11111111       ; kK jJ hH gG fF dD sS aA  27 - 20
  139.         DC.B    %11101111       ; 6N 5N 4N NL #' AA OO lL  2F - 28
  140.         DC.B    %11111111       ; mM nN bB vV cC xX yY <>  37 - 30
  141.         DC.B    %11110111       ; 9N 8N 7N .N NL -_ .: ,;  3F - 38
  142. KMHRepeatable:
  143.         DC.B    %01000111       ; 47 - 40
  144.         DC.B    %11110100       ; 4F - 48
  145.         DC.B    %11111111       ; 57 - 50
  146.         DC.B    %01111111       ; 5F - 58
  147.         DC.B    %00000000       ; 67 - 60
  148.         DC.B    %00000000       ; 6F - 68
  149.         DC.B    %00000000       ; 77 - 70
  150. KMLowMapType:
  151.         DC.B    KC_VANILLA              ; []            $00
  152.         DC.B    KCF_SHIFT+KCF_ALT       ; 1!
  153.         DC.B    KCF_SHIFT+KCF_ALT       ; 2"
  154.         DC.B    KCF_SHIFT+KCF_ALT       ; 3s
  155.         DC.B    KCF_SHIFT+KCF_ALT       ; 4$
  156.         DC.B    KCF_SHIFT+KCF_ALT       ; 5%
  157.         DC.B    KC_VANILLA              ; 6&
  158.         DC.B    KCF_SHIFT+KCF_ALT       ; 7/
  159.         DC.B    KCF_SHIFT+KCF_ALT       ; 8(            $08
  160.         DC.B    KCF_SHIFT+KCF_ALT       ; 9)
  161.         DC.B    KCF_SHIFT+KCF_ALT       ; 0=
  162.         DC.B    KC_VANILLA              ; B?
  163.         DC.B    KCF_DEAD+KCF_SHIFT+KCF_ALT ; '`
  164.         DC.B    KC_VANILLA              ; \|
  165.         DC.B    KCF_NOP                 ;NL
  166.         DC.B    KC_NOQUAL               ; 0N
  167.         DC.B    KC_VANILLA              ; qQ            $10
  168.         DC.B    KC_VANILLA              ; wW
  169.         DC.B    KCF_DEAD+KC_VANILLA     ; eE
  170.         DC.B    KC_VANILLA              ; rR
  171.         DC.B    KC_VANILLA              ; tT
  172.         DC.B    KC_VANILLA              ; zZ
  173.         DC.B    KCF_DEAD+KC_VANILLA     ; uU
  174.         DC.B    KCF_DEAD+KC_VANILLA     ; iI
  175.         DC.B    KCF_DEAD+KC_VANILLA     ; oO            $18
  176.         DC.B    KC_VANILLA              ; pP
  177.         DC.B    KC_VANILLA              ; omlatuU
  178.         DC.B    KC_VANILLA              ; +*
  179.         DC.B    KCF_NOP                 ; NL
  180.         DC.B    KC_NOQUAL               ; 1N
  181.         DC.B    KC_NOQUAL               ; 2N
  182.         DC.B    KC_NOQUAL               ; 3N
  183.         DC.B    KCF_DEAD+KC_VANILLA     ; aA            $20
  184.         DC.B    KC_VANILLA              ; sS
  185.         DC.B    KC_VANILLA              ; dD
  186.         DC.B    KCF_DEAD+KC_VANILLA     ; fF
  187.         DC.B    KCF_DEAD+KC_VANILLA     ; gG
  188.         DC.B    KCF_DEAD+KC_VANILLA     ; hH
  189.         DC.B    KCF_DEAD+KC_VANILLA     ; jJ
  190.         DC.B    KCF_DEAD+KC_VANILLA     ; kK
  191.         DC.B    KC_VANILLA              ; lL            $28
  192.         DC.B    KCF_SHIFT+KCF_ALT       ; umlotoO
  193.         DC.B    KCF_SHIFT+KCF_ALT       ; umlotaA
  194.         DC.B    KC_VANILLA              ; #^
  195.         DC.B    KCF_NOP                 ; NL
  196.         DC.B    KC_NOQUAL               ; 4N
  197.         DC.B    KC_NOQUAL               ; 5N
  198.         DC.B    KC_NOQUAL               ; 6N
  199.         DC.B    KCF_SHIFT               ; <>            $30
  200.         DC.B    KCF_DEAD+KC_VANILLA     ; yY
  201.         DC.B    KC_VANILLA              ; xX
  202.         DC.B    KC_VANILLA              ; cC
  203.         DC.B    KC_VANILLA              ; vV
  204.         DC.B    KC_VANILLA              ; bB
  205.         DC.B    KCF_DEAD+KC_VANILLA     ; nN
  206.         DC.B    KC_VANILLA              ; mM
  207.         DC.B    KCF_SHIFT+KCF_ALT       ; ,;            $38
  208.         DC.B    KCF_SHIFT+KCF_ALT       ; .:
  209.         DC.B    KC_VANILLA              ; -_
  210.         DC.B    KCF_NOP                 ; NL
  211.         DC.B    KC_NOQUAL               ; .N
  212.         DC.B    KC_NOQUAL               ; 7N
  213.         DC.B    KC_NOQUAL               ; 8N
  214.         DC.B    KC_NOQUAL               ; 9N
  215. KMHighMapType:
  216.         DC.B    KCF_DEAD+KCF_ALT        ; SPACE         $40
  217.         DC.B    KC_NOQUAL               ; BACKSPACE
  218.         DC.B    KCF_STRING+KCF_SHIFT    ; TAB
  219.         DC.B    KC_NOQUAL               ; ENTER
  220.         DC.B    KCF_CONTROL             ; RETURN
  221.         DC.B    KCF_ALT                 ; ESCAPE
  222.         DC.B    KC_NOQUAL               ; DELETE
  223.         DC.B    KCF_NOP
  224.         DC.B    KCF_NOP                 ;               $48
  225.         DC.B    KCF_NOP
  226.         DC.B    KC_NOQUAL               ; Numeric Pad -
  227.         DC.B    KCF_NOP
  228.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR UP
  229.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR DOWN
  230.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR FORWARD
  231.         DC.B    KCF_STRING+KCF_SHIFT    ; CURSOR BACKWARD
  232.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 1        $50
  233.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 2
  234.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 3
  235.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 4
  236.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 5
  237.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 6
  238.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 7
  239.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 8
  240.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 9        $58
  241.         DC.B    KCF_STRING+KCF_SHIFT    ; FKEY 10
  242.         DC.B    KCF_SHIFT+KCF_CONTROL   ; Numeric Pad [{
  243.         DC.B    KCF_SHIFT+KCF_CONTROL   ; Numeric Pad ]}
  244.         DC.B    KC_NOQUAL               ; Numeric Pad /
  245.         DC.B    KC_NOQUAL               ; Numeric Pad *
  246.         DC.B    KC_NOQUAL               ; Numeric Pad +
  247.         DC.B    KCF_STRING              ; Help
  248.         DC.B    KCF_NOP                 ; Left Shift    $60
  249.         DC.B    KCF_NOP                 ; Right Shift
  250.         DC.B    KCF_NOP                 ; Caps Lock
  251.         DC.B    KCF_NOP                 ; Control
  252.         DC.B    KCF_NOP                 ; Left Alt
  253.         DC.B    KCF_NOP                 ; Right Alt
  254.         DC.B    KCF_NOP                 ; Left Amiga
  255.         DC.B    KCF_NOP                 ; Right Amiga
  256.         DC.B    KCF_NOP                 ; Left Mouse Button $68
  257.         DC.B    KCF_NOP                 ; Right Mouse Button
  258.         DC.B    KCF_NOP                 ; Middle Mouse Button
  259.         DC.B    KCF_NOP
  260.         DC.B    KCF_NOP
  261.         DC.B    KCF_NOP
  262.         DC.B    KCF_NOP
  263.         DC.B    KCF_NOP
  264.         DC.B    KCF_NOP                 ; $70
  265.         DC.B    KCF_NOP
  266.         DC.B    KCF_NOP
  267.         DC.B    KCF_NOP
  268.         DC.B    KCF_NOP
  269.         DC.B    KCF_NOP
  270.         DC.B    KCF_NOP
  271.         DC.B    KCF_NOP
  272. KMLowMap:
  273.         DC.B    '~','`','~','`' ; `, ~, `, ~                            $00
  274.         DC.B    '!',$B9,'!','1' ; 1, !, super 1, !
  275.         DC.B    $B2,'@','"','2' ; 2, ", @, super 2
  276.         DC.B    '#',$B3,$A7,'3' ; 3, section, super 3, #
  277.         DC.B    $A2,$B0,'$','4' ; 4, $, degree, cents
  278.         DC.B    '%',$BC,'%','5' ; 5, %, 1/4, %
  279.         DC.B    '^',$BD,'&','6' ; 6, &, 1/2, ^
  280.         DC.B    '&',$BE,'/','7' ; 7, /, 3/4, &
  281.         DC.B    '*',$B7,'(','8' ; 8, (, bullet, *                       $08
  282.         DC.B    '(',$AB,')','9' ; 9, ), <<, (
  283.         DC.B    ')',$BB,'=','0' ; 0, =, >>, )
  284.         DC.B    '_','-','?',$DF ; sharp s, ?, -, _
  285.         DC.L    key0C           ; dead ', dead `, =, +
  286.         DC.B    '|','\','|','\' ; \, |, \, |
  287.         DC.L    0               ; NOP
  288.         DC.B    0,0,0,'0'       ; numeric pad 0 (0N)
  289.         DC.B    $C5,$E5,'Q','q' ; q, Q, dot a, dot A                    $10
  290.         DC.B    $B0,$B0,'W','w' ; w, W, dot, dot
  291.         DC.L    key12   ; e, E, (c), (c)
  292.         DC.B    $AE,$AE,'R','r' ; r, R, (r), (r)
  293.         DC.B    $DE,$FE,'T','t' ; t, T, thorn, THORN
  294.         DC.B    $A5,$A4,'Z','z' ; z, Z, IMS, Yen
  295.         DC.L    key16           ; u, U, micro, micro
  296.         DC.L    key17           ; i, I, inverted !, broken |
  297.         DC.L    key18           ; o, O, slash o, slash O                $18
  298.         DC.B    $B6,$B6,'P','p' ; p, P, paragraph, paragraph
  299.         DC.B    '{','[',$DC,$FC ; umlaut u, umlaut U, [, {
  300.         DC.B    '}',']','*','+' ; +, *, ], }
  301.         DC.L    0               ; NOP
  302.         DC.B    0,0,0,'1'       ; numeric pad 1 (1N)
  303.         DC.B    0,0,0,'2'       ; numeric pad 2 (2N)
  304.         DC.B    0,0,0,'3'       ; numeric pad 3 (3N)
  305.         DC.L    key20           ; a, A, ae, AE                          $20
  306.         DC.B    $A7,$DF,'S','s' ; s, S, sharp s, section
  307.         DC.B    $D0,$F0,'D','d' ; d, D, bar d, bar D
  308.         DC.L    key23           ; f, F, dead '
  309.         DC.L    key24           ; g, G, dead `
  310.         DC.L    key25           ; h, H, dead ^
  311.         DC.L    key26           ; j, J, dead ~
  312.         DC.L    key27           ; k, K, dead "
  313.         DC.B    $A3,$A3,'L','l' ; l, L, pound, pound                    $28
  314.         DC.B    ':',';',$D6,$F6 ; umlaut o, umlaut O, ;, :
  315.         DC.B    '"',$27,$C4,$E4 ; umlaut a, umlaut A, ', "
  316.         DC.B    '^','#','^','#' ; #, ^, #, ^
  317.         DC.L    0               ; NOP
  318.         DC.B    0,0,0,'4'       ; numeric pad 4 (4N)
  319.         DC.B    0,0,0,'5'       ; numeric pad 5 (5N)
  320.         DC.B    0,0,0,'6'       ; numeric pad 6 (6N)
  321.         DC.B    0,0,'>','<'     ; <, >                                  $30
  322.         DC.L    key31           ; y, Y, +/-, not
  323.         DC.B    $F7,$D7,'X','x' ; x, X, times, divide
  324.         DC.B    $C7,$E7,'C','c' ; c, C, c cedilla, C cedilla
  325.         DC.B    $AA,$AA,'V','v' ; v, V, female ordinal
  326.         DC.B    $BA,$BA,'B','b' ; b, B, male ordinal
  327.         DC.L    key36           ; n, N, SHY, overbar
  328.         DC.B    $BF,$B8,'M','m' ; m, M, cedilla, inverted ?
  329.         DC.B    '<',',',';',',' ; ,, ;, ,, <                            $38
  330.         DC.B    '>','.',':','.' ; ., :, ., >
  331.         DC.B    '?','/','_','-' ; -, _, /, ?
  332.         DC.L    0               ; NOP
  333.         DC.B    0,0,0,'.'       ; numeric pad . (.N)
  334.         DC.B    0,0,0,'7'       ; numeric pad 7 (7N)
  335.         DC.B    0,0,0,'8'       ; numeric pad 8 (8N)
  336.         DC.B    0,0,0,'9'       ; numeric pad 9 (9N)
  337. KMHighMap:
  338.         DC.L    key40                                                   $40
  339.         DC.B    0,0,0,$08
  340.         DC.L    key42
  341.         DC.B    0,0,0,$0D
  342.         DC.B    0,0,$0A,$0D
  343.         DC.B    0,0,$9B,$1B
  344.         DC.B    0,0,0,$7F
  345.         DC.L    0
  346.         DC.L    0                                                       $48
  347.         DC.L    0
  348.         DC.B    0,0,0,'-'
  349.         DC.L    0
  350.         DC.L    key4C
  351.         DC.L    key4D
  352.         DC.L    key4E
  353.         DC.L    key4F
  354.         DC.L    key50                                                   $50
  355.         DC.L    key51
  356.         DC.L    key52
  357.         DC.L    key53
  358.         DC.L    key54
  359.         DC.L    key55
  360.         DC.L    key56
  361.         DC.L    key57
  362.         DC.L    key58                                                   $58
  363.         DC.L    key59
  364.         DC.B    $1B,$1B,'{','[' ; numeric pad [, {
  365.         DC.B    $1D,$1D,'}',']' ; numeric pad ], }
  366.         DC.B    0,0,0,'/'       ; numeric pad /
  367.         DC.B    0,0,0,'*'       ; numeric pad *
  368.         DC.B    0,0,0,'+'       ; numeric pad +
  369.         DC.L    key5F
  370.         DC.L    0                                                       $60
  371.         DC.L    0
  372.         DC.L    0
  373.         DC.L    0
  374.         DC.L    0
  375.         DC.L    0
  376.         DC.L    0
  377.         DC.L    0
  378.         DC.L    0                                                       $68
  379.         DC.L    0
  380.         DC.L    0
  381.         DC.L    0
  382.         DC.L    0
  383.         DC.L    0
  384.         DC.L    0
  385.         DC.L    0
  386.         DC.L    0                                                       $70
  387.         DC.L    0
  388.         DC.L    0
  389.         DC.L    0
  390.         DC.L    0
  391.         DC.L    0
  392.         DC.L    0
  393.         DC.L    0
  394. ;------ possible dead keys
  395. key0C:
  396.         DC.B    DPF_DEAD,1+(6<<DP_2DFACSHIFT)   ; dead '
  397.         DC.B    DPF_DEAD,2+(6<<DP_2DFACSHIFT)   ; dead `
  398.         DC.B    0,'=',0,'+'                     ; =, +
  399. key23:
  400.         DC.B    0,'f',0,'F'                     ; f, F
  401.         DC.B    DPF_DEAD,1+(6<<DP_2DFACSHIFT)   ; dead '
  402.         DC.B    DPF_DEAD,1+(6<<DP_2DFACSHIFT)   ; dead '
  403.         DC.B    0,$06,0,$06,0,$86,0,$86         ; control translation
  404. key24:
  405.         DC.B    0,'g',0,'G'                     ; g, G
  406.         DC.B    DPF_DEAD,2+(6<<DP_2DFACSHIFT)   ; dead `
  407.         DC.B    DPF_DEAD,2+(6<<DP_2DFACSHIFT)   ; dead `
  408.         DC.B    0,$07,0,$07,0,$87,0,$87         ; control translation
  409. key25:
  410.         DC.B    0,'h',0,'H'                     ; h, H
  411.         DC.B    DPF_DEAD,3,DPF_DEAD,3           ; dead ^, dead ^
  412.         DC.B    0,$08,0,$08,0,$88,0,$88         ; control translation
  413. key26:
  414.         DC.B    0,'j',0,'J'                     ; j, J
  415.         DC.B    DPF_DEAD,4,DPF_DEAD,4           ; dead ~, dead ~
  416.         DC.B    0,$0A,0,$0A,0,$8A,0,$8A         ; control translation
  417. key27:
  418.         DC.B    0,'k',0,'K'                     ; k, K
  419.         DC.B    DPF_DEAD,5,DPF_DEAD,5           ; dead ", dead "
  420.         DC.B    0,$0B,0,$0B,0,$8B,0,$8B         ; control translation
  421. ;------ deadable keys (modified by dead keys)
  422. key12:                  ; e, E, (c), (c)
  423.         DC.B    DPF_MOD,key12u-key12,DPF_MOD,key12s-key12
  424.         DC.B    0,$A9,0,$A9
  425.         DC.B    0,$05,0,$05,0,$85,0,$85 ; control translation
  426. key12u:
  427.         DC.B    'e',$E9,$E8,$EA,'e',$EB
  428.         DC.B    $E9,$E9,$EA,$E9,$E9,$E9
  429.         DC.B    $E8,$EA,$E8,$E8,$E8,$E8
  430. key12s:
  431.         DC.B    'E',$C9,$C8,$CA,'E',$CB
  432.         DC.B    $C9,$C9,$CA,$C9,$C9,$C9
  433.         DC.B    $C8,$CA,$C8,$C8,$C8,$C8
  434. key16:                  ; u, U, micro, micro
  435.         DC.B    DPF_MOD,key16u-key16,DPF_MOD,key16s-key16
  436.         DC.B    0,$B5,0,$B5
  437.         DC.B    0,$15,0,$15,0,$95,0,$95 ; control translation
  438. key16u:
  439.         DC.B    'u',$FA,$F9,$FB,'u',$FC
  440.         DC.B    $FA,$FA,$FB,$FA,$FA,$FA
  441.         DC.B    $F9,$FB,$F9,$F9,$F9,$F9
  442. key16s:
  443.         DC.B    'U',$DA,$D9,$DB,'U',$DC
  444.         DC.B    $DA,$DA,$DB,$DA,$DA,$DA
  445.         DC.B    $D9,$DB,$D9,$D9,$D9,$D9
  446. key17:                  ; i, I, inverted !, broken |
  447.         DC.B    DPF_MOD,key17u-key17,DPF_MOD,key17s-key17
  448.         DC.B    0,$A1,0,$A6
  449.         DC.B    0,$09,0,$09,0,$89,0,$89 ; control translation
  450. key17u:
  451.         DC.B    'i',$ED,$EC,$EE,'i',$EF
  452.         DC.B    $ED,$ED,$EE,$ED,$ED,$ED
  453.         DC.B    $EC,$EE,$EC,$EC,$EC,$EC
  454. key17s:
  455.         DC.B    'I',$CD,$CC,$CE,'I',$CF
  456.         DC.B    $CD,$CD,$CE,$CD,$CD,$CD
  457.         DC.B    $CC,$CE,$CC,$CC,$CC,$CC
  458. key18:                  ; o, O, bar o, bar O
  459.         DC.B    DPF_MOD,key18u-key18,DPF_MOD,key18s-key18
  460.         DC.B    0,$F8,0,$D8
  461.         DC.B    0,$0F,0,$0F,0,$8F,0,$8F ; control translation
  462. key18u:
  463.         DC.B    'o',$F3,$F2,$F4,$F5,$F6
  464.         DC.B    $F3,$F3,$F4,$F3,$F3,$F3
  465.         DC.B    $F2,$F4,$F2,$F2,$F2,$F2
  466. key18s:
  467.         DC.B    'O',$D3,$D2,$D4,$D5,$D6
  468.         DC.B    $D3,$D3,$D4,$D3,$D3,$D3
  469.         DC.B    $D2,$D4,$D2,$D2,$D2,$D2
  470. key20:                  ; a, A, ae, AE
  471.         DC.B    DPF_MOD,key20u-key20,DPF_MOD,key20s-key20
  472.         DC.B    0,$E6,0,$C6
  473.         DC.B    0,$01,0,$01,0,$81,0,$81 ; control translation
  474. key20u:
  475.         DC.B    'a',$E1,$E0,$E2,$E3,$E4
  476.         DC.B    $E1,$E1,$E2,$E1,$E1,$E1 ; most recent is '
  477.         DC.B    $E0,$E2,$E0,$E0,$E0,$E0 ; most recent is `
  478. key20s:
  479.         DC.B    'A',$C1,$C0,$C2,$C3,$C4
  480.         DC.B    $C1,$C1,$C2,$C1,$C1,$C1 ; most recent is '
  481.         DC.B    $C0,$C2,$C0,$C0,$C0,$C0 ; most recent is `
  482. key36:                  ; n, N, SHY, overbar
  483.         DC.B    DPF_MOD,key36u-key36,DPF_MOD,key36s-key36
  484.         DC.B    0,$AD,0,$AF
  485.         DC.B    0,$0E,0,$0E,0,$8E,0,$8E ; control translation
  486. key36u:
  487.         DC.B    'n','n','n','n',$F1,'n'
  488.         DC.B    'n','n','n','n','n','n'
  489.         DC.B    'n','n','n','n','n','n'
  490. key36s:
  491.         DC.B    'N','N','N','N',$D1,'N'
  492.         DC.B    'N','N','N','N','N','N'
  493.         DC.B    'N','N','N','N','N','N'
  494. key31:                  ; y, Y, +/-, not
  495.         DC.B    DPF_MOD,key31u-key31,DPF_MOD,key31s-key31
  496.         DC.B    0,$B1,0,$AC
  497.         DC.B    0,$19,0,$19,0,$99,0,$99 ; control translation
  498. key31u:
  499.         DC.B    'y',$FD,'y','y','y',$FF
  500.         DC.B    $FD,$FD,$FD,$FD,$FD,$FD
  501.         DC.B    'y','y','y','y','y','y'
  502. key31s:
  503.         DC.B    'Y',$DD,'Y','Y','Y','Y'
  504.         DC.B    $DD,$DD,$DD,$DD,$DD,$DD
  505.         DC.B    'Y','Y','Y','Y','Y','Y'
  506. key40:                  ; space,,NBSP, and accents
  507.         DC.B    DPF_MOD,key40d-key40,0,$A0
  508. key40d:
  509.         DC.B    ' ',$B4,'`','^','~',$A8
  510.         DC.B    $B4,'^',$B4,$B4,$B4,$B4
  511.         DC.B    '`','`','^','`','`','`'
  512. ;------ string keys
  513. key42:
  514.         DC.B    key42ue-key42us,key42us-key42
  515.         DC.B    key42se-key42ss,key42ss-key42
  516. key42us:
  517.         DC.B    $09
  518. key42ue:
  519. key42ss:
  520.         DC.B    $9B,'Z'
  521. key42se:
  522. key4C:
  523.         DC.B    key4Cue-key4Cus,key4Cus-key4C
  524.         DC.B    key4Cse-key4Css,key4Css-key4C
  525. key4Cus:
  526.         DC.B    $9B,'A'
  527. key4Cue:
  528. key4Css:
  529.         DC.B    $9B,'T'
  530. key4Cse:
  531. key4D:
  532.         DC.B    key4Due-key4Dus,key4Dus-key4D
  533.         DC.B    key4Dse-key4Dss,key4Dss-key4D
  534. key4Dus:
  535.         DC.B    $9B,'B'
  536. key4Due:
  537. key4Dss:
  538.         DC.B    $9B,'S'
  539. key4Dse:
  540. key4E:
  541.         DC.B    key4Eue-key4Eus,key4Eus-key4E
  542.         DC.B    key4Ese-key4Ess,key4Ess-key4E
  543. key4Eus:
  544.         DC.B    $9B,'C'
  545. key4Eue:
  546. key4Ess:
  547.         DC.B    $9B,' ','@'
  548. key4Ese:
  549. key4F:
  550.         DC.B    key4Fue-key4Fus,key4Fus-key4F
  551.         DC.B    key4Fse-key4Fss,key4Fss-key4F
  552. key4Fus:
  553.         DC.B    $9B,'D'
  554. key4Fue:
  555. key4Fss:
  556.         DC.B    $9B,' ','A'
  557. key4Fse:
  558. key50:
  559.         DC.B    key50ue-key50us,key50us-key50
  560.         DC.B    key50se-key50ss,key50ss-key50
  561. key50us:
  562.         DC.B    $9B,'0~'
  563. key50ue:
  564. key50ss:
  565.         DC.B    $9B,'10~'
  566. key50se:
  567. key51:
  568.         DC.B    key51ue-key51us,key51us-key51
  569.         DC.B    key51se-key51ss,key51ss-key51
  570. key51us:
  571.         DC.B    $9B,'1~'
  572. key51ue:
  573. key51ss:
  574.         DC.B    $9B,'11~'
  575. key51se:
  576. key52:
  577.         DC.B    key52ue-key52us,key52us-key52
  578.         DC.B    key52se-key52ss,key52ss-key52
  579. key52us:
  580.         DC.B    $9B,'2~'
  581. key52ue:
  582. key52ss:
  583.         DC.B    $9B,'12~'
  584. key52se:
  585. key53:
  586.         DC.B    key53ue-key53us,key53us-key53
  587.         DC.B    key53se-key53ss,key53ss-key53
  588. key53us:
  589.         DC.B    $9B,'3~'
  590. key53ue:
  591. key53ss:
  592.         DC.B    $9B,'13~'
  593. key53se:
  594. key54:
  595.         DC.B    key54ue-key54us,key54us-key54
  596.         DC.B    key54se-key54ss,key54ss-key54
  597. key54us:
  598.         DC.B    $9B,'4~'
  599. key54ue:
  600. key54ss:
  601.         DC.B    $9B,'14~'
  602. key54se:
  603. key55:
  604.         DC.B    key55ue-key55us,key55us-key55
  605.         DC.B    key55se-key55ss,key55ss-key55
  606. key55us:
  607.         DC.B    $9B,'5~'
  608. key55ue:
  609. key55ss:
  610.         DC.B    $9B,'15~'
  611. key55se:
  612. key56:
  613.         DC.B    key56ue-key56us,key56us-key56
  614.         DC.B    key56se-key56ss,key56ss-key56
  615. key56us:
  616.         DC.B    $9B,'6~'
  617. key56ue:
  618. key56ss:
  619.         DC.B    $9B,'16~'
  620. key56se:
  621. key57:
  622.         DC.B    key57ue-key57us,key57us-key57
  623.         DC.B    key57se-key57ss,key57ss-key57
  624. key57us:
  625.         DC.B    $9B,'7~'
  626. key57ue:
  627. key57ss:
  628.         DC.B    $9B,'17~'
  629. key57se:
  630. key58:
  631.         DC.B    key58ue-key58us,key58us-key58
  632.         DC.B    key58se-key58ss,key58ss-key58
  633. key58us:
  634.         DC.B    $9B,'8~'
  635. key58ue:
  636. key58ss:
  637.         DC.B    $9B,'18~'
  638. key58se:
  639. key59:
  640.         DC.B    key59ue-key59us,key59us-key59
  641.         DC.B    key59se-key59ss,key59ss-key59
  642. key59us:
  643.         DC.B    $9B,'9~'
  644. key59ue:
  645. key59ss:
  646.         DC.B    $9B,'19~'
  647. key59se:
  648. key5F:
  649.         DC.B    key5Fe-key5Fs,key5Fs-key5F
  650. key5Fs:
  651.         DC.B    $9B,'?~'
  652. key5Fe:
  653. KMName:
  654.         DC.B    'd',0
  655. ;kmEnd
  656.         END
  657.